import request from '@/utils/request'

// 查询字典数据列表
export function listData(query) {
  return request({
    url: '/system/dict/data/list',
    method: 'get',
    params: query
  })
}

// 查询字典数据详细
export function getData(dictCode) {
  return request({
    url: '/system/dict/data/' + dictCode,
    method: 'get'
  })
}

// 根据字典类型查询字典数据信息
export function getDicts(dictType) {
  return request({
    url: '/system/dict/data/type/' + dictType,
    method: 'get'
  })
}

// 通用：按 dictType 分页查询字典数据（公共方法）
// 使用示例：listByTypePaged('travel_carpool_type', 1, 10)
// 额外查询条件可通过 extra 传入，如 { status: '0' }
export function listByTypePaged(dictType, pageNum, pageSize, extra = {}) {
  return request({
    url: '/system/dict/data/list',
    method: 'get',
    params: Object.assign({ dictType, pageNum, pageSize }, extra)
  })
}

// 可选：将分页结果的 rows 转为下拉选项
export function toDictOptions(rows = []) {
  return rows.map(item => ({
    label: item.dictLabel,
    value: item.dictValue,
    colorType: item.listClass,
    cssClass: item.cssClass,
    raw: item
  }))
}

// 新增字典数据
export function addData(data) {
  return request({
    url: '/system/dict/data',
    method: 'post',
    data: data
  })
}

// 修改字典数据
export function updateData(data) {
  return request({
    url: '/system/dict/data',
    method: 'put',
    data: data
  })
}

// 删除字典数据
export function delData(dictCode) {
  return request({
    url: '/system/dict/data/' + dictCode,
    method: 'delete'
  })
}
